import requests
import hashlib
import time

sa = str(int(time.time()))
print(sa)
def make_md5(text):
    """
    Md5加密 只能加密字符串
    :param text:  需要加密的内容，必须是个字符串
    :return:
    """
    m = hashlib.md5()  # 创建一个 md5加密工具
    m.update(str(text).encode(encoding='utf-8'))
    res = m.hexdigest()  # 生成加密后的内容
    return res

s = requests.session()  # 创建会话
# 注册
mydata = {
    "username":'ff'+sa,
    "password":'fd'+sa+'wqr',
    "cpassword":'fd'+sa+'wqr',
    "checkcode":'1234',
    "email":'adming'+sa+'@qq.com'
}
# 通过会话发送请求，返回响应的数据  url接口地址 data请求数据
ccc = s.post(url='http://114.132.200.42:3456/user/register',data = mydata)
print(ccc.json())

# 登录
url = 'http://114.132.200.42:3456/user/login'
data = {
    'username': 'ff'+sa ,
    'password': make_md5('fd'+sa+'wqr'),
    'checkcode': '1234'
}

res = s.post(url=url, data=data)  # post请求 data 参数表示请求数据
print(res.status_code)
print(res.json())
a = res.json()
# 拿到用户id和token
re = a.get('userId')
ra = a.get('userToken')
# print(re)
# print(ra)



# 创建任务
createurl = 'http://114.132.200.42:3456/task/info'
mydata = {
    'title':sa
}
hb = {'userId': re, 'userToken': ra}
res = s.post(url=createurl, data=mydata, headers=hb)  # headers 参数表示头部信息
# 以json的形式发送请求参数，只需要将参数名data改为json
# 以get请求无法以json的形式发送
# 上传图片也一样files 不能改为json
print(res.json())
gettaskid = res.json().get('taskid')
print(gettaskid)

# 查询任务  get请求
geturl = 'http://114.132.200.42:3456/task/info'
mydata = {
    'status': "0"
}
res = s.get(url=geturl, headers=hb, params=mydata)  # get请求 params参数表示请求数据
print(res.json())

# 完成任务
completeTheTaskurl = 'http://114.132.200.42:3456/task/info'
mydata={
'task_id':gettaskid
}
res = s.put(url=completeTheTaskurl,data=mydata,headers=hb)
print(res.json())

# 删除任务
deleteurl ='http://114.132.200.42:3456/task/info'
mydata = {
'task_id':gettaskid
}
dd = s.delete(url=deleteurl,data=mydata,headers=hb)
print(dd.json())

# 上传图像
# 文件上传
imgUrl = 'http://114.132.200.42:3456/user/uploal_action'
# ('参数名', ('文件名',open('文件路径','rb') ) )
myimg = [
    ('pic', ('yjx.png',open('yjx.jpg','rb') ) )
]
ff = s.post(url=imgUrl,headers=hb,files=myimg) # 关于文件上传的接口 files 表示
print(ff.json())